Once upon a time, there were trees throughout the land. Then, man learned to write and there arose a need for paper. This was not good for the trees. The trees became unhappy and looked upon man with great suspicion. One day, a brilliant but frustrated apple tree, in an effort to alert man to the impending annihilation of the trees, cast forth a piece of fruit upon the 'noggin of Mr. Newton. At first, this appeared to have a wonderful effect, for after this day, Newton took the first step down a long road of technological advancements which ultimately resulted in the development of the computer. Man was proud of his computer. The computer opened the flood gates of productivity and the Bill Gates of software. Man proudly claimed in front of the trees and the rest of the world, that the advent of the computer would create a paperless society. The trees were happy. Then came the printer.
Personal computers have become a primary platform for generating documentation in a variety of settings such as business offices, homes, schools, and the like. The ability to use a personal computer for creating documents has been greatly facilitated by the development of computer applications such as "MICROSOFT WORD", a word processing program, and "MICROSOFT EXCEL", a personal and business accounting spreadsheet program, both published by Microsoft Corporation of Redmond, Wash. These programs and similar programs are generically referred to as "document processing programs". Operating these programs on a computer, allows a user to generate documents which can then be stored on magnetic media for future use and/or printed on paper. A document stored on magnetic media is referred to as an "electronic document" or a "soft-copy", whereas a printout of the document is referred to as a "print-out" or a "hard-copy".
When using a document processing program to generate or modify an electronic document, the information contained in the electronic document can be viewed on a display device such as a computer monitor. Due to the limited viewing size of the display screen for a typical computer monitor, only a portion of a large document can be viewed at any one time. Thus, most document processing programs include a display scaling feature. The display scaling feature allows users to reduce the display scale of an electronic document so that more information can be viewed on the display screen. Additionally, the user can increase the display scale of an electronic document so that less information can be viewed, but, with more clarity.
Hard-copies of an electronic document are useful when delivering final versions of a document or when proofreading draft versions of a document. Hard-copies are generated by sending a stream of information to a local printer, attached to a port of the computer, or to a remote printer, functionally connected to the computer through a network. The stream of information must conform to specific format and protocol requirements for the particular printer being used. Generally, the stream of information consists of a series of commands. (i.e., line-feeds, carriage returns, form feeds, text formats, etc.) and data.
A typical printer may support a variety of paper sizes. To accommodate this, document processing programs may include a feature which allows a user to select or input information defining the dimensions and/or the margins of a page. Based on these dimensions, the document processing program determines the amount of information that can fit on a single page and divides the electronic document accordingly. In a simplistic view, the stream of information sent to a printer when printing multiple pages of an electronic document consist of printable information separated by delimiters. These delimiters, usually referred to as form-feeds, are used to identify the end of a page.
Prior to printing a multiple page electronic document, document processing programs allow the user to identify where the page-breaks of the document are located. A page-break may consist of a code which is embedded within the electronic document and is used for identifying the boundaries of a page. The page-breaks can be used by the document processing program to determine the location that form-feeds should be placed in the stream of information sent to the printer. The page-breaks can be displayed on the display screen in a variety of manners. The method used by the "MICROSOFT WORD" product is to place a dashed line between the last line of one page and the first line of the succeeding page. Other products use techniques such as displaying a special character, a solid line, or words such as "page-break" after the last line on a page.
Prior to printing a document, the user can examine the page-breaks to determine if they are positioned at undesirable locations (i.e., in the middle of a table or between a sub-header and the following paragraph). If a user determines that a page-break is located at an undesirable location, the user can force the page-break to move to a different location. One method to accomplish this is to enter "white space" or blank lines above a page-break. This results in forcing the page-break to move down in the document. Another method is to delete white space above a page-break to force the page-break to move up in the document. Other methods such as modifying the spacing of the lines of text, the size of the font, the spacing between paragraphs, etc. can also be used to force the page-break to a new location. Forcing and maintaining page-breaks at specific locations using these techniques can be time consuming, especially for large documents. Therefore there is a need for an improved method for forcing page-breaks to specific locations within a document.
"MICROSOFT WORD" and "MICROSOFT EXCEL" address this particular need by supporting two types of page-breaks. The first type consists of page-breaks that are automatically inserted, by the document processing program, at page boundaries. These are referred to as automatic page-breaks. As information is entered into or deleted from a document, the document processing program automatically identifies page boundaries and places automatic page-breaks accordingly. The second type consists of page-breaks that a user can enter at any location within the document. These are referred to as manual page-breaks. The manual page-breaks are static within an electronic document. Thus, as information is entered into a document or deleted from a document, the manual page-breaks are not adjusted. For example, consider a manual page-break that is located after the last line of page one and before the first line of page two. If all of the lines on page one are deleted without removing the manual page-break, the manual page-breaking will remain before the first line of page two and page one will be blank.
The use of automatic and manual page-breaks greatly enhances the usefulness of document processing programs; however, current techniques lack efficiency and simplicity. For instance, in order to change the position of a manual page-break, the user typically conducts the following actions:
(1) select a manual page-break by using a mouse or similar means; PA1 (2) delete the manual page-break by entering the appropriate user commands; PA1 (3) allow the document to repaginate automatically or force a repagination by entering the appropriate user commands; PA1 (4) move a pointer to a location to place a new manual page-break; and then PA1 (5) enter a manual page-break by entering the appropriate user commands. PA1 (1) select an estimated scaling factor, PA1 (2) perform the steps necessary to enter the scaling factor into the program, PA1 (3) examine the repaginated document to determine if the scaling factor is too large (typically an automatic page-break will appear between the manual page-breaks) or too small (the page contains too much empty space). This process can be quite cumbersome and may require the user to change reiteratively the scaling factors of several pages.
Thus, although providing a manual page-break feature allows a user to force page-breaks to occur at specific locations, there is also a need for a simple and efficient method of manipulating the position of manual page-breaks within an electronic document.
When entering a manual page-break into an electronic document, the user must perform steps (3)-(5) of the above listed steps. For large documents, this process can be burdensome. However, because typical document processing programs place automatic page-breaks within a document, it is desirable to have the capability to convert an automatic page-break into a manual page-break and then move the manual page-break to a new location. Therefore, there is a need for a simple and efficient method of converting an automatic page-break into a manual page-break and then moving the manual page-break to a new location.
When users create a hard-copy of an electronic document, they may desire a certain section of data to appear on a single page (i.e., a formatted table, a paragraph, a bulletized list, etc.). The user can force this to occur by entering a manual page-break before and after this section of data. However, if the section of data is too large to fit on one page, a document processing program will usually insert an automatic page-break between the two manual page-breaks. In order to allow more flexibility in formatting the layout of hard-copies of an electronic document, some document processing programs provide a scaling factor. The scaling factor, represents a percentage to either reduce or increase the size of the printed information. Thus, if a user desires to print two pages of information onto a single page, the user can select a reducing scaling factor of 50%. This will reduce the size of the information printed or displayed so that more information can fit on a page.
Defining a scaling factor for a document typically requires a user to select a series of pull-down menu items or enter appropriate user commands followed by a new scaling factor. A problem associated with using scaling factors is that it is not always easy to identify what scaling factor is required to obtain a desired result. The user generally must engage in a trial and error process in order to identify the proper scaling factor. Thus, when using a scaling factor, a user typically conducts the following actions:
For large documents, performing these steps may be a tedious task. Therefore, there is a need for a method to automatically scale a selected range of data to fit onto a single page.
Providing the ability to move page-breaks within a document amplifies the problems associated with identifying a scaling factor. For instance, if a page is located between two manual page-breaks, and the manual page-breaks are moved relative to each other, then a new scaling factor must be determined. Thus, there is a need for a method to automatically determine the scaling factor for a page located between two manual page-breaks when one of the page-breaks are moved to a new location.
When a scaling factor has been modified for one page of a document, the remainder of the document should also be adjusted by the same scaling factor in order to provide a uniform appearance. In providing this uniform appearance, the smallest scaling factor selected for any particular section of the document should be applied to the entire document. Therefore, there is a need to automatically scale pages of a document as page-breaks are repositioned, select the smallest scaling factor appearing in the document, and repaginate the remainder of the document in accordance with the selected scaling factor.
Thus, there are several problems associated with utilizing page-breaks within an electronic document. Current techniques for providing page-breaks within an electronic document require too much user interaction and are too complicated. Therefore, there is a need for an improved system or method to solve these problems.